#ifdef LOCAL
#define _GLIBCXX_DEBUG
#endif

#include<bits/stdc++.h>

using namespace std;

#define rep(i,a,b) for(int i=(a),ed##i=(b);i<=ed##i;++i)
#define per(i,a,b) for(int i=(a),ed##i=(b);i>=ed##i;--i)
#define re(i,a) rep(i,1,a)
#define umod(x) (((x)>=mo)&&((x)-=mo))
#define dmod(x) (((x)<0)&&((x)+=mo))
#define fio(x) (freopen(x".in","r",stdin),freopen(x".out","w",stdout))
#define dbg(x) (cerr<<#x" = "<<(x)<<'\n')

using ll=long long;

const int mo=998244353;
struct Mod{
  int x;
  Mod(ll x=0):x((x%mo+mo)%mo){}

  inline Mod Pow(ll y)const{
    int x=this->x,res=1;
    while(y){
      if(y&1)res=1ll*res*x%mo;
      x=1ll*x*x%mo;
      y>>=1;
    }
    return res;
  }
};

inline Mod operator+(Mod x,Mod y){
  Mod res;
  res.x=x.x+y.x;
  umod(res.x);
  return res;
}

inline Mod operator-(Mod x,Mod y){
  Mod res;
  res.x=x.x-y.x;
  dmod(res.x);
  return res;
}

inline Mod operator*(Mod x,Mod y){
  Mod res;
  res.x=1ll*x.x*y.x%mo;
  return res;
}

inline Mod&operator+=(Mod&x,Mod y){
  x.x+=y.x,umod(x.x);
  return x;
}

inline Mod&operator-=(Mod&x,Mod y){
  x.x-=y.x,dmod(x.x);
  return x;
}

inline Mod&operator*=(Mod&x,Mod y){
  x.x=1ll*x.x*y.x%mo;
  return x;
}

inline Mod operator""_m(unsigned long long x){
  Mod res;
  res.x=x%mo;
  return res;
}

const int N=3e6;

string S;

namespace st1{
unordered_set<string>Ans;

inline void Dfs1(string s){
  //dbg(s);
  if(Ans.count(s))return;
  Ans.insert(s);
  rep(i,0,s.size()-2){
    if((s[i]=='A'&&s[i+1]=='A')||(s[i]=='B'&&s[i+1]=='B')||(s[i]=='B'&&s[i+1]=='A')){
      //cerr<<s<<' '<<i<<' '<<s.substr(0,i)<<' '<<s.substr(i+2)<<'\n';
      //exit(0);
      Dfs1(s.substr(0,i)+s.substr(i+2));
    }
  }
}

inline void Main(){
  Dfs1(S);
  cout<<Ans.size()<<'\n';
}
}

signed main(){
#ifndef LOCAL
  fio("song");
#endif
  cin>>S;
  if(S.size()==1)cout<<"1\n",exit(0);
  if(S.size()<=20)st1::Main(),exit(0);
  bool fl=1;
  re(i,S.size()-1)if(S[i]==S[i-1]){fl=0;break;}
  if(fl){
    int n=S.size();
    if(S[0]=='A')--n;
    n/=2;
    ++n;
    cout<<n<<'\n';
    exit(0);
  }
  st1::Main(),exit(0);
  return 0;
}
